Conversation
If sqlite3 is built with double-quoted string literals disabled (which is recommended, see https://www.sqlite.org/compile.html#dqs), diskcache starts failing with the following crypting error: ``` no such column: "size" ``` This is because the syntax `WHERE key = "size"` in standard SQL refers to a column named "size", not a string literal. Parsing this as a string literal is a conditional sqlite extension. This patch makes the code more robust by avoiding this optional sqlite feature.
|
cc @grantjenks |
- grantjenks/python-diskcache#311 Differential Revision: https://reviews.freebsd.org/D45295 Approved by: yuri Sponsored by: SkunkWerks, GmbH
|
sqlite 3.49 (at least 3.49.1 released on conda forge) appears to have (possibly inadvertently) set DQS=off, so this failure has reappeared. I believe sqlite had backed away from changing this setting temporarily and I don't see the change explicitly announced in the changelog, which leads me to think this was inadvertent. Still, it would be nice to have this package be unaffeted. |
|
We were also bitten by this change in Conda. Agree it would be cool if diskcache would be compatible with dqs=off, since this is advocated by SQLite as the recommended option (see https://www.sqlite.org/quirks.html). Anything we can do to help get this merged? |
|
Just wanted to chime in and mention that we're also impacted by the conda-forge issue. I still find it to be a very useful library and would love to keep using it. |
|
Creating an explicit link over to the related conda-forge issue: conda-forge/sqlite-feedstock#130 |
Diskcache is using double-quoted string literals in SQL queries, which is not supported by all SQL databases. This change replaces double quotes with single quotes in SQL queries. Copied from grantjenks#311
Update for sqlite wihout double quoting Diskcache is using double-quoted string literals in SQL queries, which is not supported by all SQL databases. This change replaces double quotes with single quotes in SQL queries. Copied from grantjenks#311
|
+1 |
|
@grantjenks are you still working on diskcache? |
If sqlite3 is built with double-quoted string literals disabled (which is recommended, see https://www.sqlite.org/compile.html#dqs), diskcache starts failing with the following crypting error:
This is because the syntax
WHERE key = "size"in standard SQL refers to a column named "size", not a string literal. Parsing this as a string literal is a conditional sqlite extension.This patch makes the code more robust by avoiding this optional sqlite feature.